package conditions.operators

import conditions.BooleanNode
import values.Variable

class EqualsNode extends BooleanNode {

   /**
    * Referencias a variables o parametros de los cuales voy a obtener el valor.
    */
   Variable v1
   Variable v2
   
   public EqualsNode() {}
   
   public EqualsNode(Variable v1, Variable v2)
   {
      this.v1 = v1
      this.v2 = v2
   }
  
   @Override
   public boolean evaluate()
   {
      println "  " + v1.value + " eq " + v2.value
      return v1.value.equals(v2.value)
   }
   
   /**
   * Necesario para implementar el clone
   */
   boolean equals(Object other)
   {
      other instanceof EqualsNode && this.v1.equals(other.v1) && this.v2.equals(other.v2)
   }
}